<!--
  Copyright 2004 File Authors

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
	<head>
		<meta http-equiv="content-type" content="text/html;charset=utf-8" />
		<title>No Controller Found</title>
		<link rel="Stylesheet" href="${rootContext}/includes/${judo_style_css_document}" type="text/css"/>
	</head >
	<body>
		<div id="content">
			<h2>Your Request Has Been Recieved by the Judo Framework</h2>
			The Judo Framework has recieved a request to the URL:
			<br><br>
			<i>'${bad_url}'</i>.
			<br><br>
			This request came in with the following request parameters:
			${problem_params}
			Currently, there is not a controller configured for this request.
			<br><br>
			<ul>
				<li><b>Expected Contoller:</b> ${ncEx.className}
				<li><b>Expected Action Method:</b> ${ncEx.methodname}()
				<c:if test="${urlForwardParam == 'none'}">
					<li><b>Default JSP Forward:</b> ${ncEx.action}.jsp
				</c:if>
				<c:if test="${urlForwardParam != 'none'}">
					<li><b>Default JSP Forward:</b> ${urlForwardParam}
				</c:if>
			</ul>
			
			<h3>Default Judo URL Mapping</h3>
			When an HTTP request is recieved by the Judo Framework, by default it assumes
			that it is in the following pattern:
			<br><br>
			<b>http://[host]/[context]/...[optional_path].../[controller_name]/[action_name].do</b>
			<br></br>
			The contoller and action name are used to find out which controller class should handle the request.
			The controller and action are turned into java syntax by removing underscores and
			tranforming them into "camelback" notation.  The controller maps to a class
			and the action maps to a method in that class.
			<br><br>
			For an example of camel back notation mapping, the value 'aaa_bbb_ccc' would be
			'AaaBbbCcc'.  Additionally, the 'Base package' that is defined in web.xml
			file is prepened to the class name so it is fully qualified.  The base package
			defined for this application is '${base_package}'.
			<br><br>
			Using these conventions, the Judo Framework makes the following
			assumptions about your request:
			<ul>
			<li>The '${ncEx.controller}' controller name would map the the class name: '${ncEx.className}'.
			<li>The '${ncEx.action}' action name would map to a method in that class with
			the name '${ncEx.methodname}'
			<li>Any HTTP request parameters that came in with this request would be
			mapped to the properties and user interface controllers that are part
			of the contoller class.
			</ul>	
			<h3>Default Forwarding</h3>
			Unless a Page Controller explicitly forwards the request to another action
			or to a JSP page, the Judo Framwork uses the request itself to determin
			what the next JSP page should be. So, in the pattern...
			<br><br>
			<b>http://[host]/[context]/...[optional_path].../[controller_name]/[action_name].do</b>
			<br><br>
			...the action name would be used to figure out what the JSP page should be that
			gets forwarded to.  The Judo Framwork takes that action name and changes
			it to a JSP page name.  The action name '${ncEx.action}' in this request
			would by default map to '${ncEx.action}.jsp'.
			<br><br>
			If an HTTP request includes the parameter '_forward', it is assumed that
			it holds the value of 
		</div>
	</body>
</html>